{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>InvoiceNo</th>\n",
       "      <th>StockCode</th>\n",
       "      <th>Description</th>\n",
       "      <th>Quantity</th>\n",
       "      <th>InvoiceDate</th>\n",
       "      <th>UnitPrice</th>\n",
       "      <th>CustomerID</th>\n",
       "      <th>Country</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>536365</td>\n",
       "      <td>85123A</td>\n",
       "      <td>WHITE HANGING HEART T-LIGHT HOLDER</td>\n",
       "      <td>6</td>\n",
       "      <td>2010-12-01 08:26:00</td>\n",
       "      <td>2.55</td>\n",
       "      <td>17850.0</td>\n",
       "      <td>United Kingdom</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>536365</td>\n",
       "      <td>71053</td>\n",
       "      <td>WHITE METAL LANTERN</td>\n",
       "      <td>6</td>\n",
       "      <td>2010-12-01 08:26:00</td>\n",
       "      <td>3.39</td>\n",
       "      <td>17850.0</td>\n",
       "      <td>United Kingdom</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>536365</td>\n",
       "      <td>84406B</td>\n",
       "      <td>CREAM CUPID HEARTS COAT HANGER</td>\n",
       "      <td>8</td>\n",
       "      <td>2010-12-01 08:26:00</td>\n",
       "      <td>2.75</td>\n",
       "      <td>17850.0</td>\n",
       "      <td>United Kingdom</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>536365</td>\n",
       "      <td>84029G</td>\n",
       "      <td>KNITTED UNION FLAG HOT WATER BOTTLE</td>\n",
       "      <td>6</td>\n",
       "      <td>2010-12-01 08:26:00</td>\n",
       "      <td>3.39</td>\n",
       "      <td>17850.0</td>\n",
       "      <td>United Kingdom</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>536365</td>\n",
       "      <td>84029E</td>\n",
       "      <td>RED WOOLLY HOTTIE WHITE HEART.</td>\n",
       "      <td>6</td>\n",
       "      <td>2010-12-01 08:26:00</td>\n",
       "      <td>3.39</td>\n",
       "      <td>17850.0</td>\n",
       "      <td>United Kingdom</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  InvoiceNo StockCode                          Description  Quantity  \\\n",
       "0    536365    85123A   WHITE HANGING HEART T-LIGHT HOLDER         6   \n",
       "1    536365     71053                  WHITE METAL LANTERN         6   \n",
       "2    536365    84406B       CREAM CUPID HEARTS COAT HANGER         8   \n",
       "3    536365    84029G  KNITTED UNION FLAG HOT WATER BOTTLE         6   \n",
       "4    536365    84029E       RED WOOLLY HOTTIE WHITE HEART.         6   \n",
       "\n",
       "          InvoiceDate  UnitPrice  CustomerID         Country  \n",
       "0 2010-12-01 08:26:00       2.55     17850.0  United Kingdom  \n",
       "1 2010-12-01 08:26:00       3.39     17850.0  United Kingdom  \n",
       "2 2010-12-01 08:26:00       2.75     17850.0  United Kingdom  \n",
       "3 2010-12-01 08:26:00       3.39     17850.0  United Kingdom  \n",
       "4 2010-12-01 08:26:00       3.39     17850.0  United Kingdom  "
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import pandas as pd\n",
    "import warnings\n",
    "warnings.filterwarnings('ignore')\n",
    "\n",
    "df = pd.read_excel(\"Online_Retail.xlsx\")\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "import seaborn as sns\n",
    "sns.set_palette(\"husl\")\n",
    "sns.set(rc={'image.cmap': 'coolwarm'})\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "InvoiceNo       object\n",
       "StockCode       object\n",
       "Description     object\n",
       "Quantity         int64\n",
       "InvoiceDate     object\n",
       "UnitPrice      float64\n",
       "CustomerID     float64\n",
       "Country         object\n",
       "dtype: object"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.dtypes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import datetime as dt\n",
    "df['InvoiceDate'] = pd.to_datetime(df['InvoiceDate']).dt.date"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "df = df[pd.notnull(df['CustomerID'])]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "df = df[(df['Quantity']>0)]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "df['Sales'] = df['Quantity'] * df['UnitPrice']\n",
    "cols_of_interest = ['CustomerID', 'InvoiceDate', 'Sales']\n",
    "df = df[cols_of_interest]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   CustomerID InvoiceDate  Sales\n",
      "0     17850.0  2010-12-01  15.30\n",
      "1     17850.0  2010-12-01  20.34\n",
      "2     17850.0  2010-12-01  22.00\n",
      "3     17850.0  2010-12-01  20.34\n",
      "4     17850.0  2010-12-01  20.34\n",
      "Number of Entries: 397924\n"
     ]
    }
   ],
   "source": [
    "print(df.head())\n",
    "print('Number of Entries: %s' % len(df))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* frequency represents the number of repeat purchases the customer has made. This means that it’s one less than the total number of purchases.\n",
    "* T represents the age of the customer in whatever time units chosen (daily, in our dataset). This is equal to the duration between a customer’s first purchase and the end of the period under study.\n",
    "* recency represents the age of the customer when they made their most recent purchases. This is equal to the duration between a customer’s first purchase and their latest purchase. (Thus if they have made only 1 purchase, the recency is 0.)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>frequency</th>\n",
       "      <th>recency</th>\n",
       "      <th>T</th>\n",
       "      <th>monetary_value</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>CustomerID</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>12346.0</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>325.0</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12347.0</th>\n",
       "      <td>6.0</td>\n",
       "      <td>365.0</td>\n",
       "      <td>367.0</td>\n",
       "      <td>599.701667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12348.0</th>\n",
       "      <td>3.0</td>\n",
       "      <td>283.0</td>\n",
       "      <td>358.0</td>\n",
       "      <td>301.480000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12349.0</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>18.0</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12350.0</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>310.0</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            frequency  recency      T  monetary_value\n",
       "CustomerID                                           \n",
       "12346.0           0.0      0.0  325.0        0.000000\n",
       "12347.0           6.0    365.0  367.0      599.701667\n",
       "12348.0           3.0    283.0  358.0      301.480000\n",
       "12349.0           0.0      0.0   18.0        0.000000\n",
       "12350.0           0.0      0.0  310.0        0.000000"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from lifetimes.plotting import *\n",
    "from lifetimes.utils import *\n",
    "from lifetimes.estimation import *\n",
    "\n",
    "data = summary_data_from_transaction_data(df, 'CustomerID', 'InvoiceDate', monetary_value_col='Sales', observation_period_end='2011-12-9')\n",
    "data.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Basic Frequency/Recency analysis using the BG/NBD model\n",
    "We’ll use the BG/NBD model first, because this is the simplest to start with."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<lifetimes.BetaGeoFitter: fitted with 4339 subjects, a: 0.00, alpha: 69.03, b: 1.06, r: 0.83>\n"
     ]
    }
   ],
   "source": [
    "from lifetimes import BetaGeoFitter\n",
    "\n",
    "# similar API to scikit-learn and lifelines.\n",
    "bgf = BetaGeoFitter(penalizer_coef=0.0)\n",
    "bgf.fit(data['frequency'], data['recency'], data['T'])\n",
    "print(bgf)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "After fitting, we have lots of nice methods and properties attached to the fitter object.\n",
    "\n",
    "For small samples sizes, the parameters can get implausibly large, so by adding an l2 penalty the likelihood, we can control how large these parameters can be. This is implemented as setting as positive penalizer_coef in the initialization of the model. In typical applications, penalizers on the order of 0.001 to 0.1 are effective."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Visualizing our Frequency/Recency Matrix\n",
    "Consider: a customer bought from us every day for three weeks straight, and we haven’t heard from them in months. What are the chances they are still “alive”? Pretty small. On the other hand, a customer who historically buys from us once a quarter, and bought last quarter, is likely still alive. We can visualize this relationship using the Frequency/Recency matrix, which computes the expected number of transactions a artificial customer is to make in the next time period, given his or her recency (age at last purchase) and frequency (the number of repeat transactions he or she has made)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 116,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1b9e76fa080>"
      ]
     },
     "execution_count": 116,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1b9e89e51d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from lifetimes.plotting import plot_frequency_recency_matrix\n",
    "\n",
    "plot_frequency_recency_matrix(bgf)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can see that if a customer has bought 120 times from us, and their latest purchase was when they were 350 days old (given the individual is 350 days old), then they are our best customer (bottom-right). Customers who have purchased a lot and purchased recently will likely be the best customers in the future.\n",
    "\n",
    "Customers who have purchased a lot but not recently (top-right corner), have probably dropped out."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "There’s also that beautiful “tail” around (20,250). That represents the customer who buys infrequently, and we’ve not seen him or her very recently, so they might buy again - we’re not sure if they dropped out or just between purchases.\n",
    "\n",
    "We can predict which customers are still alive:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1b9e696fa90>"
      ]
     },
     "execution_count": 66,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nrkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1b9e64f9278>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from lifetimes.plotting import plot_probability_alive_matrix\n",
    "\n",
    "plot_probability_alive_matrix(bgf)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Customers who have purchased recently are almost surely \"alive\". \n",
    "\n",
    "Customers who have purchased a lot but not recently, are likely to have dropped out. And the more they bought in the past, the more likely they have dropped out. They are represented in the upper-right.\n",
    "\n",
    "The matrix lets us estimate a behavioral propensity that we can never observe if someone is alive or not. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Ranking customers from best to worst"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let’s return to our customers and rank them from “highest expected purchases in the next period” to lowest. Models expose a method that will predict a customer’s expected purchases in the next period using their history."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>frequency</th>\n",
       "      <th>recency</th>\n",
       "      <th>T</th>\n",
       "      <th>monetary_value</th>\n",
       "      <th>predicted_purchases</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>CustomerID</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>14606.0</th>\n",
       "      <td>88.0</td>\n",
       "      <td>372.0</td>\n",
       "      <td>373.0</td>\n",
       "      <td>135.890114</td>\n",
       "      <td>0.200951</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15311.0</th>\n",
       "      <td>89.0</td>\n",
       "      <td>373.0</td>\n",
       "      <td>373.0</td>\n",
       "      <td>677.729438</td>\n",
       "      <td>0.203214</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17841.0</th>\n",
       "      <td>111.0</td>\n",
       "      <td>372.0</td>\n",
       "      <td>373.0</td>\n",
       "      <td>364.452162</td>\n",
       "      <td>0.252984</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12748.0</th>\n",
       "      <td>113.0</td>\n",
       "      <td>373.0</td>\n",
       "      <td>373.0</td>\n",
       "      <td>298.360885</td>\n",
       "      <td>0.257509</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14911.0</th>\n",
       "      <td>131.0</td>\n",
       "      <td>372.0</td>\n",
       "      <td>373.0</td>\n",
       "      <td>1093.661679</td>\n",
       "      <td>0.298229</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            frequency  recency      T  monetary_value  predicted_purchases\n",
       "CustomerID                                                                \n",
       "14606.0          88.0    372.0  373.0      135.890114             0.200951\n",
       "15311.0          89.0    373.0  373.0      677.729438             0.203214\n",
       "17841.0         111.0    372.0  373.0      364.452162             0.252984\n",
       "12748.0         113.0    373.0  373.0      298.360885             0.257509\n",
       "14911.0         131.0    372.0  373.0     1093.661679             0.298229"
      ]
     },
     "execution_count": 72,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "t = 1\n",
    "data['predicted_purchases'] = bgf.conditional_expected_number_of_purchases_up_to_time(t, data['frequency'], data['recency'], data['T'])\n",
    "data.sort_values(by='predicted_purchases').tail(5)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can see that the customer who has made 131 purchases, and bought very recently from us, has a probability of 29.8% to buy again in the next period (tomorrow)."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Assessing model fit\n",
    "we can predict and we can visualize our customers’ behaviour, but is our model correct? There are a few ways to assess the model’s correctness. The first is to compare our data versus artificial data simulated with your fitted model’s parameters."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1b9e87cd940>"
      ]
     },
     "execution_count": 73,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1b9e79a6710>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from lifetimes.plotting import plot_period_transactions\n",
    "plot_period_transactions(bgf)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This plot tells us for all customers in our data, how many purchases they make in our observation period, and what does the model predict? Looks nice?\n",
    "\n",
    "More importantly, it tells us that our model doesn’t suck. So, we can continue on with our analysis."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### More model fitting\n",
    "We can partition the dataset into a calibration period dataset and a holdout dataset. This is important as we want to test how our model performs on data not yet seen (think cross-validation in standard machine learning literature). Lifetimes has a function to partition our dataset like this:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "            frequency_cal  recency_cal  T_cal  frequency_holdout  \\\n",
      "CustomerID                                                         \n",
      "12346.0               0.0          0.0  141.0                0.0   \n",
      "12347.0               2.0        121.0  183.0                4.0   \n",
      "12348.0               2.0        110.0  174.0                1.0   \n",
      "12350.0               0.0          0.0  126.0                0.0   \n",
      "12352.0               3.0         34.0  112.0                3.0   \n",
      "\n",
      "            duration_holdout  \n",
      "CustomerID                    \n",
      "12346.0                  184  \n",
      "12347.0                  184  \n",
      "12348.0                  184  \n",
      "12350.0                  184  \n",
      "12352.0                  184  \n"
     ]
    }
   ],
   "source": [
    "from lifetimes.utils import calibration_and_holdout_data\n",
    "\n",
    "summary_cal_holdout = calibration_and_holdout_data(df, 'CustomerID', 'InvoiceDate',\n",
    "                                        calibration_period_end='2011-06-08',\n",
    "                                        observation_period_end='2011-12-9' )   \n",
    "print(summary_cal_holdout.head())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 105,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1b9e91aaeb8>"
      ]
     },
     "execution_count": 105,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1b9e91aa518>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from lifetimes.plotting import plot_calibration_purchases_vs_holdout_purchases\n",
    "\n",
    "bgf.fit(summary_cal_holdout['frequency_cal'], summary_cal_holdout['recency_cal'], summary_cal_holdout['T_cal'])\n",
    "plot_calibration_purchases_vs_holdout_purchases(bgf, summary_cal_holdout)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Customer Predictions\n",
    "Based on customer history, we can predict what an individuals future purchases might look like:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.088760211599876931"
      ]
     },
     "execution_count": 106,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "t = 10 #predict purchases in 10 periods\n",
    "individual = data.iloc[20]\n",
    "# The below function is an alias to `bfg.conditional_expected_number_of_purchases_up_to_time`\n",
    "bgf.predict(t, individual['frequency'], individual['recency'], individual['T'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 107,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "frequency                3.000000\n",
       "recency                309.000000\n",
       "T                      360.000000\n",
       "monetary_value         651.623333\n",
       "predicted_purchases      0.008919\n",
       "Name: 12370.0, dtype: float64"
      ]
     },
     "execution_count": 107,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.iloc[20]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Customer ID 12370's predicted purchase is 0.008919 in 10 periods."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Customer Probability Histories\n",
    "Given a customer transaction history, we can calculate their historical probability of being alive, according to our trained model. For example:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1b9e8ebc0f0>"
      ]
     },
     "execution_count": 108,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nAb8RI4iGAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1b9e98b3c18>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from lifetimes.plotting import plot_history_alive\n",
    "\n",
    "id = 12347\n",
    "days_since_birth = 365\n",
    "sp_trans = df.loc[df['CustomerID'] == id]\n",
    "plot_history_alive(bgf, days_since_birth, sp_trans, 'InvoiceDate')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Estimating customer lifetime value using the Gamma-Gamma model\n",
    "For this whole time we didn’t take into account the economic value of each transaction and we focused mainly on transactions’ occurrences. To estimate this we can use the Gamma-Gamma submodel. But first we need to create summary data from transactional data also containing economic values for each transaction (i.e. profits or revenues)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 109,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "            frequency  recency      T  monetary_value  predicted_purchases\n",
      "CustomerID                                                                \n",
      "12347.0           6.0    365.0  367.0      599.701667             0.015657\n",
      "12348.0           3.0    283.0  358.0      301.480000             0.008961\n",
      "12352.0           6.0    260.0  296.0      368.256667             0.018702\n",
      "12356.0           2.0    303.0  325.0      269.905000             0.007174\n",
      "12358.0           1.0    149.0  150.0      683.200000             0.008340\n"
     ]
    }
   ],
   "source": [
    "returning_customers_summary = data[data['frequency']>0]\n",
    "\n",
    "print(returning_customers_summary.head())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### The Gamma-Gamma model and the independence assumption\n",
    "The model we are going to use to estimate the CLV for our userbase is called the Gamma-Gamma submodel, which relies upon an important assumption. The Gamma-Gamma submodel, in fact, assumes that there is no relationship between the monetary value and the purchase frequency. In practice we need to check whether the Pearson correlation between the two vectors is close to 0 in order to use this model."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 110,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>monetary_value</th>\n",
       "      <th>frequency</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>monetary_value</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.015882</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>frequency</th>\n",
       "      <td>0.015882</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                monetary_value  frequency\n",
       "monetary_value        1.000000   0.015882\n",
       "frequency             0.015882   1.000000"
      ]
     },
     "execution_count": 110,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "returning_customers_summary[['monetary_value', 'frequency']].corr()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "At this point we can train our Gamma-Gamma submodel and predict the conditional, expected average lifetime value of our customers."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<lifetimes.GammaGammaFitter: fitted with 2790 subjects, p: 2.10, q: 3.45, v: 485.57>\n"
     ]
    }
   ],
   "source": [
    "from lifetimes import GammaGammaFitter\n",
    "\n",
    "ggf = GammaGammaFitter(penalizer_coef = 0)\n",
    "ggf.fit(returning_customers_summary['frequency'],\n",
    "        returning_customers_summary['monetary_value'])\n",
    "print(ggf)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can now estimate the average transaction value:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CustomerID\n",
      "12346.0    416.917661\n",
      "12347.0    569.988799\n",
      "12348.0    333.762677\n",
      "12349.0    416.917661\n",
      "12350.0    416.917661\n",
      "12352.0    376.166865\n",
      "12353.0    416.917661\n",
      "12354.0    416.917661\n",
      "12355.0    416.917661\n",
      "12356.0    324.008947\n",
      "dtype: float64\n"
     ]
    }
   ],
   "source": [
    "print(ggf.conditional_expected_average_profit(\n",
    "        data['frequency'],\n",
    "        data['monetary_value']\n",
    "    ).head(10))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Expected conditional average profit: 441.1283979957275, Average profit: 477.3586892535673\n"
     ]
    }
   ],
   "source": [
    "print(\"Expected conditional average profit: %s, Average profit: %s\" % (\n",
    "    ggf.conditional_expected_average_profit(\n",
    "        data['frequency'],\n",
    "        data['monetary_value']\n",
    "    ).mean(),\n",
    "    data[data['frequency']>0]['monetary_value'].mean()\n",
    "))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "While for computing the total CLV using the [DCF method](https://en.wikipedia.org/wiki/Discounted_cash_flow) adjusting for cost of capital:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CustomerID\n",
      "12346.0     295.248437\n",
      "12347.0    3010.933981\n",
      "12348.0    1008.692681\n",
      "12349.0    1337.106359\n",
      "12350.0     306.932918\n",
      "12352.0    2372.739730\n",
      "12353.0     426.098827\n",
      "12354.0     386.464241\n",
      "12355.0     411.043305\n",
      "12356.0     784.161525\n",
      "Name: clv, dtype: float64\n"
     ]
    }
   ],
   "source": [
    "# refit the BG model to the summary_with_money_value dataset\n",
    "bgf.fit(data['frequency'], data['recency'], data['T'])\n",
    "\n",
    "print(ggf.customer_lifetime_value(\n",
    "    bgf, #the model to use to predict the number of future transactions\n",
    "    data['frequency'],\n",
    "    data['recency'],\n",
    "    data['T'],\n",
    "    data['monetary_value'],\n",
    "    time=12, # months\n",
    "    discount_rate=0.01 # monthly discount rate ~ 12.7% annually\n",
    ").head(10))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
